//package com.zhan.ielts.web.controller;
//
//import java.util.HashMap;
//import java.util.Map;
//
//import org.jasypt.util.text.BasicTextEncryptor;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.util.StringUtils;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestMethod;
//import org.springframework.web.bind.annotation.ResponseBody;
//
//import com.zhan.frame.core.dao.BaseService;
//import com.zhan.frame.core.web.controller.BaseControllerImpl;
//import com.zhan.frame.core.web.domain.CustomResult;
//import com.zhan.ielts.domain.Users;
//import com.zhan.ielts.domain.UsersDetail;
//import com.zhan.ielts.domain.query.UsersQuery;
//import com.zhan.ielts.service.UsersService;
//import com.zhan.ielts.utils.Contents;
//
//@Controller
//@RequestMapping("/users")
//public class UserManageController extends BaseControllerImpl<Users, UsersQuery> {
//
//	private Logger log = LoggerFactory.getLogger(UserManageController.class);
//
//	@Autowired
//	private UsersService usersService;
//
//	@Override
//	protected BaseService<Users> getBaseService() {
//		return usersService;
//	}
//
//	/**
//	 * @function 登录验证
//	 * @param entity
//	 */
//	@ResponseBody
//	@RequestMapping(value = "/login", method = RequestMethod.POST)
//	public CustomResult loginSystem(Users entity) {
//		log.debug("用户登录开始！");
//		Map<String, Integer> map = new HashMap<String, Integer>();
//		// 验证参数
//		if (StringUtils.isEmpty(entity.getUsername())) {
//			log.error("用户名为空！");
//			map.put("errCode", 1001);
//			return new CustomResult(0, "用户名为空！", map);
//		} else if (StringUtils.isEmpty(entity.getPassword())) {
//			log.error("密码为空！");
//			map.put("errCode", 1002);
//			return new CustomResult(0, "密码为空！", map);
//		}
//		CustomResult result;
//		try {
//			result = usersService.loginUser(entity);
//		} catch (Exception e) {
//			e.printStackTrace();
//			log.error("系统错误，用户登录失败！");
//			map.put("errCode", 1003);
//			return new CustomResult(0, "系统错误，用户登录失败！", map);
//		}
//		log.debug("用户登录结束！");
//		return result;
//	}
//
//	/**
//	 * @function 注册用户
//	 * @param entity
//	 * @return
//	 */
//	@ResponseBody
//	@RequestMapping(value = "/register", method = RequestMethod.POST)
//	public CustomResult registerUser(Users entity, UsersDetail usersDetail ) {
//		log.debug("注册用户和角色开始");
//		Map<String, Integer> map = new HashMap<String, Integer>();
//
//		// 验证参数
//		if (StringUtils.isEmpty(entity.getUsername())) {
//			log.error("用户名为空！");
//			map.put("errCode", 1001);
//			return new CustomResult(0, "用户名为空！", map);
//
//		} else if (StringUtils.isEmpty(entity.getPassword())) {
//			log.error("密码为空！");
//			map.put("errCode", 1002);
//			return new CustomResult(0, "密码为空！", map);
//		} else if (StringUtils.isEmpty(entity.getType())) {
//			log.error("注册类型为空！");
//			map.put("errCode", 1003);
//			return new CustomResult(0, "注册类型为空！", map);
//		}
//		CustomResult result;
//		try {
//			result = usersService.registerUser(entity, usersDetail);
//
//		} catch (Exception e) {
//			e.printStackTrace();
//			log.error("系统错误");
//			map.put("errCode", 1004);
//			return new CustomResult(0, "系统错误！", map);
//		}
//		log.debug("注册用户和角色结束" + entity.toString());
//		return result;
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/check", method = RequestMethod.POST)
//	public CustomResult checkUser(Users entity) {
//		log.debug("检查用户开始");
//
//		Map<String, Integer> map = new HashMap<String, Integer>();
//
//		if (StringUtils.isEmpty(entity.getUsername())) {
//			log.debug("用户名不得为空！");
//			map.put("errCode", 1001);
//			return new CustomResult(0, "用户名不得为空！", map);
//		} else if (StringUtils.isEmpty(entity.getType())) {
//			log.debug("类型不得为空！");
//			map.put("errCode", 1002);
//			return new CustomResult(0, "类型不得为空！", map);
//		}
//
//		CustomResult result;
//		try {
//			result = usersService.checkUser(entity);
//
//		} catch (Exception e) {
//			log.error("系统错误，用户查询失败！");
//			map.put("errCode", 1003);
//			return new CustomResult(0, "系统错误，用户查询失败！", map);
//		}
//
//		log.debug("检查用户结束");
//		return result;
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/update", method = RequestMethod.POST)
//	public CustomResult updateUser(Users entity, UsersDetail usersDetail) {
//		log.debug("修改用户开始");
//
//		Map<String, Integer> map = new HashMap<String, Integer>();
//
//		if (StringUtils.isEmpty(entity.getId())) {
//			log.debug("id不得为空！");
//			map.put("errCode", 1001);
//			return new CustomResult(0, "id不得为空！", map);
//		} else if (StringUtils.isEmpty(entity.getType())) {
//			log.debug("类型不得为空！");
//			map.put("errCode", 1002);
//			return new CustomResult(0, "类型不得为空！", map);
//		}
//
//		BasicTextEncryptor bte = new BasicTextEncryptor();
//		bte.setPassword(Contents.PASSWORD_KEY);
//		String encryptedPassword = bte.encrypt(entity.getPassword());
//		entity.setPassword(encryptedPassword);
//		entity.setUpdateTime(System.currentTimeMillis());
//		Users user ;
//		try {
//			user = usersService.updateUser(entity, usersDetail);
//
//
//		} catch (Exception e) {
//			log.error("系统错误，修改查询失败！");
//			map.put("errCode", 1003);
//			return new CustomResult(0, "系统错误，修改用户失败！", map);
//		}
//
//		log.debug("修改用户结束");
//		return new CustomResult(1, "", user);
//	}
//
//	@ResponseBody
//	@RequestMapping(value = "/fetch", method = RequestMethod.POST)
//	public CustomResult fetchUser(Users entity) {
//		log.debug("获取用户开始");
//
//		Map<String, Integer> map = new HashMap<String, Integer>();
//		Users user = null;
//
//		if (StringUtils.isEmpty(entity.getId())) {
//			log.debug("id不得为空！");
//			map.put("errCode", 1001);
//			return new CustomResult(0, "id不得为空！", map);
//		}
//
//		try {
//			user = usersService.queryById(entity.getId());
//
//		} catch (Exception e) {
//			log.error("系统错误，获取用户失败！");
//			map.put("errCode", 1002);
//			return new CustomResult(0, "系统错误，获取用户失败！", map);
//		}
//
//		log.debug("获取用户结束");
//		if (entity.getUpdateTime() == null || user.getUpdateTime() == null
//				|| entity.getUpdateTime() < user.getUpdateTime()) {
//			return new CustomResult(1, "", user);
//		} else {
//			return new CustomResult(1, "", map);
//		}
//	}
//
//}
